package com.sakura.probe.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sakura.probe.common.api.CommonResult;
import com.sakura.probe.pojo.Topic;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface TopicService extends IService<Topic> {
    /**
     * 添加动态以及图片或文件(如果有的话)
     * @param topic 需要添加的动态内容
     * @param fileList 存储文件相关信息的队列
     * @param type 1-上传图片 2-上传视频
     * @return
     */
    CommonResult save(Topic topic, List<MultipartFile> fileList,int type);

    /**
     * 根据topicCondition分页返回相关话题列表信息
     * @param topicCondition
     * @param pageIndex
     * @param pageSize
     * @return
     */
    CommonResult<List<Topic>> listByCondition(Topic topicCondition,int pageIndex,int pageSize);

    /**
     * 根据查询结果获取总数
     * @param topic
     * @return
     */
    Long countByCondition(Topic topic);

    /**
     * 根据话题id获取话题相关内容
     * @param topicId
     * @param userId
     * @return
     */
    CommonResult<Topic> getTopicInfo(Long topicId, String userId);

    /**
     * 删除话题信息
     * @param topicId
     * @return
     */
    boolean deleteTopic(Long topicId);

    boolean batchDeleteTopic(List<Long> list);

    /**
     * 还原已删除的话题
     */
    boolean restoreTopic(Long topicId);

    /**
     * 批量还原已删除的话题
     */
    boolean batchRestoreTopic(List<Long> list);
}
